package com.example.demo.common;

/**
 * 术语 枚举
 *
 * @author 邓凯献
 */
public class TerminologyConfigEnum {

    private TerminologyConfigEnum() {
        throw new AssertionError();
    }

    public interface ConstantType {
    }


    /**
     * 根节点
     */
    public enum ROOT implements ConstantType {
        ROOT("根节点");
        private String code;
        private String desc;
        private ROOT(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    /**
     * 语言
     */
    public enum LANGUAGE implements ConstantType {
        KM_KH("柬埔寨"),
        EN_US("英文"),
        ZH_CN("中文"),
        ZH_HK("中文香港"),
        ZH_TW("中文台湾"),
        JA_JP("日语"),
        KO_KR("朝鲜语(韩国)"),
        MS_MY("马来西亚语"),
        TH_TH("泰语"),
        VI_VN("越南语"),
        ID_ID("印度尼西亚语"),
        RU_RU("俄语"),
        ;
        private String code;
        private String desc;
        private LANGUAGE(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    /**
     * 亚马逊站点编码
     */
    public enum SITE implements ConstantType {
        US("美国"),
        FR("法国"),
        JP("日本"),
        CA("加拿大"),
        UK("英国"),
        IT("意大利"),
        DE("德国"),
        AU("澳大利亚"),
        KR("韩国"),
        ES("西班牙"),
        ;
        private String code;
        private String desc;
        private SITE(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }



    /**
     * VPS状态
     */
    public enum VPS_STATUS implements ConstantType {
        NEW("新开"),
        USEING("使用中"),
        DISABLE("封禁"),
        ;
        private String code;
        private String desc;
        private VPS_STATUS(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }



    /**
     * 邮箱状态
     */
    public enum EMAIL_STATUS implements ConstantType {
        NEW("新开"),
        USEING("使用中"),
        DISABLE("封禁"),
        ;
        private String code;
        private String desc;
        private EMAIL_STATUS(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }


    /**
     * 地址状态
     */
    public enum ADDRESS_STATUS implements ConstantType {
        NEW("未使用"),
        USEING("使用中"),
        DISABLE("封禁"),
        ;
        private String code;
        private String desc;
        private ADDRESS_STATUS(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }



    /**
     * 虚拟机状态
     */
    public enum VIRTUAL_STATUS implements ConstantType {
        NEW("未使用"),
        USEING("使用中"),
        DISABLE("废弃"),
        ;
        private String code;
        private String desc;
        private VIRTUAL_STATUS(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }


    /**
     * 卡状态
     */
    public enum CARD_STATUS implements ConstantType {
        NEW("新开"),
        USEING("使用中"),
        DISABLE("封禁"),
        REFUND("已退款"),
        ;
        private String code;
        private String desc;
        private CARD_STATUS(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }


    public enum CARD_TYPE implements ConstantType {
        VIRTUAL("虚拟卡")
        ;
        private String code;
        private String desc;
        private CARD_TYPE(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    public enum CARD_CHANNEL implements ConstantType {
        GLOBAL_PAYMENT("全球付")
        ;
        private String code;
        private String desc;
        private CARD_CHANNEL(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    /**
     * 账号状态
     */
    public enum ACCOUNT_STATUS implements ConstantType {
        NEW("新号"),
        USEING("使用中"),
        DISABLE("封禁"),
        ;
        private String code;
        private String desc;
        private ACCOUNT_STATUS(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    /**
     * 订单状态
     */
    public enum ORDER_STATUS implements ConstantType {
        PENDING("待付款"),
        PAY_COMPLETE("已付款，未返产品款"),
        WAIT_SUPPLEMENT("待补单"),
        SHIPPED_CHECK_COMPLETE("发货核对完成"),
        REFUND_PRODUCT_AMOUNT("已返产品款"),
        REVIEWS("已留评,未返佣"),
        REFUND_COMMISSION_AMOUNT("已返佣"),
        CANCELLED_NO_REFUND("已取消,中介未退款"),
        CANCELLED("已取消"),
        COMPLETE("订单完成"),
        ;
        private String code;
        private String desc;
        private ORDER_STATUS(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    /**
     * 订单状态
     */
    public enum PAY_STATUS implements ConstantType {
        PENDING("未返款"),
        REFUND_PRODUCT_AMOUNT("已返产品款"),
        REFUND_COMMISSION_AMOUNT("已返佣"),
        ;
        private String code;
        private String desc;
        private PAY_STATUS(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    /**
     * 下单状态
     */
    public enum APPLY_STATUS implements ConstantType {
        WAIT("待处理"),
        IN_PROGRESS("进行中"),
        COMPLETE("已完成"),
        ;
        private String code;
        private String desc;
        private APPLY_STATUS(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    /**
     * 业务类型
     */
    public enum BUSINESS_TYPE implements ConstantType {
        REVIEWS("测评"),
        FEEDBACK("feedback"),
        NO_REVIEWS("免评"),
        QA("QA"),
        ADD_SHOPPING_TROLLEY("加购")
        ;
        private String code;
        private String desc;
        private BUSINESS_TYPE(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    /**
     * 账号星级
     */
    public enum STAR implements ConstantType {
        NEW("新号"),
        REVIEWS("可留评"),
        FEEDBACK("feedback"),
        NO_REVIEWS("可下单"),
        QA("QA"),
        IMPORTANT("重点账号"),
        DISABLE("不能使用"),
        ;
        private String code;
        private String desc;
        private STAR(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }


    /**
     * 工作流任务状态
     */
    public enum VALID_FLAG implements ConstantType {
        /**有效*/
        effective("有效"),
        /**失效*/
        invalid("失效");
        ;
        private String code;
        private String desc;
        private VALID_FLAG(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    /**
     * 币种
     */
    public enum CURRENCY implements ConstantType {
        CNY("人民币"),
        SUR("俄罗斯卢布"),
        CAD("加拿大元"),
        IDR("印尼盾"),
        ATS("奥地利先令"),
        DEM("德国马克"),
        LUF("意大利里拉"),
        ITL("意大利里拉"),
        SGD("新加坡元"),
        NZD("新西兰元"),
        JPY("日元"),
        KHR("柬埔寨瑞尔"),
        EUR("欧元"),
        BEF("比利时法郎"),
        FRF("法国法郎"),
        THB("泰铢"),
        HKD("港币"),
        AUD("澳大利亚元"),
        IEP("爱尔兰镑"),
        CHF("瑞士法郎"),
        USD("美元"),
        FIM("芬兰马克"),
        GBP("英镑"),
        NLG("荷兰盾"),
        PHP("菲律宾比索"),
        PTE("葡萄牙埃斯库多"),
        ESP("西班牙比塞塔"),
        KRW("韩国元"),
        MYR("马来西亚林吉特"),
        ;
        private String code;
        private String desc;
        private CURRENCY(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }


    /**
     * 账号使用
     */
    public enum ACCOUNT_USE_TYPE implements ConstantType {
        WHITE("白号"),
        BLACK("黑号"),
        ADD_SHOPPING_TROLLEY("加购号"),
        ;
        private String code;
        private String desc;
        private ACCOUNT_USE_TYPE(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }



    /**
     * 账号来源
     */
    public enum ACCOUNT_SOURCE implements ConstantType {
        INSIDE("内部账号"),
        OUTSIDE("第三方账号"),
        ;
        private String code;
        private String desc;
        private ACCOUNT_SOURCE(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }

    /**
     * 下单来源
     */
    public enum APPLY_SOURCE implements ConstantType {
        INSIDE("内部下单"),
        OUTSIDE("外部下单"),
        ;
        private String code;
        private String desc;
        private APPLY_SOURCE(String desc) {
            this.code = code;
            this.desc = desc;
        }
        public String code() {
            return code;
        }

        public String desc() {
            return desc;
        }
    }
}
